home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / GUSI / GUSISocket.cp < prev    next >
Text File  |  1993-12-30  |  3KB  |  155 lines

  1. /*********************************************************************
  2. Project    :    GUSI                -    Grand Unified Socket Interface
  3. File        :    GUSISocket.cp    -    Default implementations
  4. Author    :    Matthias Neeracher
  5. Started    :    24Mar92                                Language    :    MPW C/C++
  6. Modified    :    27Apr92    MN    getsockopt()
  7.                 21May92    MN    Implement select()
  8.                 15Sep92    MN    Sockets are regular files for fstat()
  9.                 09Feb93    MN    Initialize lurking related fields.
  10.                 27Jun93    MN    Socket::ftruncate, Socket::{pre,post}_select
  11. Last        :    27Jun93
  12. *********************************************************************/
  13.  
  14. #include "GUSI_P.h"
  15.  
  16. #include <Time.h>
  17.  
  18. // While most of the calls can't be substituted, some of them can
  19. // and a few others have reasonable defaults
  20.  
  21. Socket::Socket()
  22. {
  23.     refCount    =    0;
  24.     lurking    =    false;
  25.     lurkDescr=    0;
  26. }
  27.  
  28. Socket::~Socket()
  29. {
  30. }
  31.  
  32. int Socket::bind(void *, int)
  33. {
  34.     return GUSI_error(EOPNOTSUPP);
  35. }
  36.  
  37. int Socket::connect(void *, int)
  38. {
  39.     return GUSI_error(EOPNOTSUPP);
  40. }
  41.  
  42. int Socket::listen(int)
  43. {
  44.     return GUSI_error(EOPNOTSUPP);
  45. }
  46.  
  47. Socket * Socket::accept(void *, int *)
  48. {
  49.     return (Socket *) GUSI_error_nil(EOPNOTSUPP);
  50. }
  51.  
  52. int Socket::read(void * buffer, int buflen)
  53. {
  54.     int    fromlen = 0;
  55.     
  56.     return recvfrom(buffer, buflen, 0, nil, &fromlen);
  57. }
  58.  
  59. int Socket::write(void * buffer, int buflen)
  60. {
  61.     return sendto(buffer, buflen, 0, nil, 0);
  62. }
  63.  
  64. int Socket::recvfrom(void *, int, int, void *, int *)
  65. {
  66.     return GUSI_error(EOPNOTSUPP);
  67. }
  68.  
  69. int Socket::sendto(void *, int, int, void *, int)
  70. {
  71.     return GUSI_error(EOPNOTSUPP);
  72. }
  73.  
  74. int Socket::getsockname(void *, int *)
  75. {
  76.     return GUSI_error(EOPNOTSUPP);
  77. }
  78.  
  79. int Socket::getpeername(void *, int *)
  80. {
  81.     return GUSI_error(EOPNOTSUPP);
  82. }
  83.  
  84. int Socket::getsockopt(int, int, void *, int *)
  85. {
  86.     return GUSI_error(EOPNOTSUPP);
  87. }
  88.  
  89. int Socket::setsockopt(int, int, void *, int)
  90. {
  91.     return GUSI_error(EOPNOTSUPP);
  92. }
  93.  
  94. int Socket::fcntl(unsigned int, int)
  95. {
  96.     return GUSI_error(EOPNOTSUPP);
  97. }
  98.  
  99. int Socket::ioctl(unsigned int, void *)
  100. {
  101.     return GUSI_error(EOPNOTSUPP);
  102. }
  103.  
  104. int Socket::fstat(struct stat * buf)
  105. {
  106.     buf->st_dev            =    0;
  107.     buf->st_ino            =    0;
  108.     buf->st_mode        =    S_IFSOCK | 0666 ;
  109.     buf->st_nlink        =    1;
  110.     buf->st_uid            =    0;
  111.     buf->st_gid            =    0;
  112.     buf->st_rdev        =    0;
  113.     buf->st_size        =    1;
  114.     buf->st_atime        =    time(NULL);
  115.     buf->st_mtime        =    time(NULL);
  116.     buf->st_ctime        =    time(NULL);
  117.     buf->st_blksize    =    1;
  118.     buf->st_blocks        =    1;
  119.     
  120.     return 0;
  121. }
  122.  
  123. long Socket::lseek(long, int)
  124. {
  125.     return GUSI_error(ESPIPE);
  126. }
  127.  
  128. int Socket::ftruncate(long)
  129. {
  130.     return GUSI_error(EINVAL);
  131. }
  132.  
  133. int Socket::isatty()
  134. {
  135.     return 0;
  136. }
  137.  
  138. int Socket::shutdown(int)
  139. {
  140.     return GUSI_error(EOPNOTSUPP);
  141. }
  142.  
  143. void Socket::pre_select(Boolean, Boolean, Boolean)
  144. {
  145. }
  146.  
  147. int Socket::select(Boolean *, Boolean *, Boolean *)
  148. {
  149.     return 0;
  150. }
  151.  
  152. void Socket::post_select(Boolean, Boolean, Boolean)
  153. {
  154. }
  155.